/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package co.edu.uniandes.vehialpes.importaciones;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 *
 * @author DuckMan
 */
public class AdministradorImportaciones
{
    private List<Vehiculo> vehiculos;
    private List<Cliente> clientes;
    private List<Concesionario> concesionarios;
    private Map<String, Compra> compras;

    public AdministradorImportaciones()
    {
        clientes = new ArrayList<Cliente>();
        concesionarios = new ArrayList<Concesionario>();
        vehiculos = new ArrayList<Vehiculo>();
        compras = new HashMap<String, Compra>();
        generar();
    }

    public AdministradorImportaciones(List<Vehiculo> vehiculos, List<Cliente> clientes, List<Concesionario> concesionarios, Map<String, Compra> compras) {
        this.vehiculos = vehiculos;
        this.clientes = clientes;
        this.concesionarios = concesionarios;
        this.compras = compras;
    }

    public List<Cliente> getClientes() {
        return clientes;
    }

    public Map<String, Compra> getCompras() {
        return compras;
    }

    public List<Concesionario> getConcesionarios() {
        return concesionarios;
    }

    public List<Vehiculo> getVehiculos() {
        return vehiculos;
    }

    public void setClientes(List<Cliente> clientes) {
        this.clientes = clientes;
    }

    public void setCompras(Map<String, Compra> compras) {
        this.compras = compras;
    }

    public void setConcesionarios(List<Concesionario> concesionarios) {
        this.concesionarios = concesionarios;
    }

    public void setVehiculos(List<Vehiculo> vehiculos) {
        this.vehiculos = vehiculos;
    }

    public void addVehiculo( Vehiculo v){
        vehiculos.add(v);
    }

    public void addConcesionario(Concesionario c){
        concesionarios.add(c);
    }

    public void addCliente(Cliente c){
        clientes.add(c);
    }

    public void addCompra(Concesionario c, Vehiculo v, Cliente c1, String placa){
        compras.put(v.getSerialMotor(), new Compra(c1, c, v, placa));
    }

    public Vehiculo getVehiculo(String placa){
        for(Vehiculo v: vehiculos){
            if(v.getPlaca().equals(placa)){
                return v;
            }
        }
        return null;
    }

    public Cliente getCliente(String id){
        for(Cliente c: clientes){
            if(c.getId().equals(id)){
                return c;
            }
        }
        return null;
    }

    public Concesionario getConcesionario(String nit){
        for(Concesionario c: concesionarios){
            if(c.getNit().equals(nit)){
                return c;
            }
        }
        return null;
    }

    public Compra getCompra(String serial){
        return compras.get(serial);
    }

    public List<Vehiculo> getVehiculosCliente(String idCliente)
    {
        ArrayList<Vehiculo> resp = new ArrayList<Vehiculo>();
        Collection<Compra> cs = compras.values();
        Iterator<Compra> it = cs.iterator();
        while(it.hasNext()){
            Compra c = it.next();
            if(c.getCliente().getId().equals(idCliente)){
                resp.add(c.getVehiculo());
            }
        }
        return resp;
    }


    private void generar(){
        
    }
}
